home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 2.1B1 / AIncludes / OSUtils.a < prev    next >
Encoding:
Text File  |  1995-04-18  |  17.5 KB  |  825 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OSUtils.a
  3. ;
  4. ;    Contains:    OS Utilities Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  21. __OSUTILS__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  30.     include 'MixedMode.a'
  31.     ENDIF
  32.  
  33.     IF &TYPE('__MEMORY__') = 'UNDEFINED' THEN
  34.     include 'Memory.a'
  35.     ENDIF
  36.  
  37. useFree                            EQU        0
  38. useATalk                        EQU        1
  39. useAsync                        EQU        2
  40. useExtClk                        EQU        3                    ;Externally clocked
  41. useMIDI                            EQU        4
  42. ; Environs Equates 
  43. curSysEnvVers                    EQU        2                    ;Updated to equal latest SysEnvirons version
  44. ; Machine Types 
  45. envMac                            EQU        -1
  46. envXL                            EQU        -2
  47. envMachUnknown                    EQU        0
  48. env512KE                        EQU        1
  49. envMacPlus                        EQU        2
  50. envSE                            EQU        3
  51. envMacII                        EQU        4
  52. envMacIIx                        EQU        5
  53. envMacIIcx                        EQU        6
  54. envSE30                            EQU        7
  55. envPortable                        EQU        8
  56. envMacIIci                        EQU        9
  57. envMacIIfx                        EQU        11
  58. ; CPU types 
  59. envCPUUnknown                    EQU        0
  60.  
  61. env68000                        EQU        1
  62. env68010                        EQU        2
  63. env68020                        EQU        3
  64. env68030                        EQU        4
  65. env68040                        EQU        5
  66. ; Keyboard types 
  67. envUnknownKbd                    EQU        0
  68. envMacKbd                        EQU        1
  69. envMacAndPad                    EQU        2
  70. envMacPlusKbd                    EQU        3
  71. envAExtendKbd                    EQU        4
  72. envStandADBKbd                    EQU        5
  73. envPrtblADBKbd                    EQU        6
  74. envPrtblISOKbd                    EQU        7
  75. envStdISOADBKbd                    EQU        8
  76. envExtISOADBKbd                    EQU        9
  77. false32b                        EQU        0                    ;24 bit addressing error
  78. true32b                            EQU        1                    ;32 bit addressing error
  79. ; result types for RelString Call 
  80. sortsBefore                        EQU        -1                    ;first string < second string
  81. sortsEqual                        EQU        0                    ;first string = second string
  82. sortsAfter                        EQU        1                    ;first string > second string
  83.  
  84. ; Toggle results 
  85. toggleUndefined                    EQU        0
  86. toggleOK                        EQU        1
  87. toggleBadField                    EQU        2
  88. toggleBadDelta                    EQU        3
  89. toggleBadChar                    EQU        4
  90. toggleUnknown                    EQU        5
  91. toggleBadNum                    EQU        6
  92. toggleOutOfRange                EQU        7                    ;synonym for toggleErr3
  93. toggleErr3                        EQU        7
  94. toggleErr4                        EQU        8
  95. toggleErr5                        EQU        9
  96. ; Date equates 
  97. smallDateBit                    EQU        31                    ;Restrict valid date/time to range of Time global
  98. togChar12HourBit                EQU        30                    ;If toggling hour by char, accept hours 1..12 only
  99. togCharZCycleBit                EQU        29                    ;Modifier for togChar12HourBit: accept hours 0..11 only
  100. togDelta12HourBit                EQU        28                    ;If toggling hour up/down, restrict to 12-hour range (am/pm)
  101. genCdevRangeBit                    EQU        27                    ;Restrict date/time to range used by genl CDEV
  102. validDateFields                    EQU        -1
  103. maxDateField                    EQU        10
  104. eraMask                            EQU        $0001
  105. yearMask                        EQU        $0002
  106. monthMask                        EQU        $0004
  107. dayMask                            EQU        $0008
  108. hourMask                        EQU        $0010
  109. minuteMask                        EQU        $0020
  110. secondMask                        EQU        $0040
  111. dayOfWeekMask                    EQU        $0080
  112. dayOfYearMask                    EQU        $0100
  113. weekOfYearMask                    EQU        $0200
  114. pmMask                            EQU        $0400
  115. dateStdMask                        EQU        $007F                ;default for ValidDate flags and ToggleDate TogglePB.togFlags
  116.  
  117. eraField                        EQU        0
  118. yearField                        EQU        1
  119. monthField                        EQU        2
  120. dayField                        EQU        3
  121. hourField                        EQU        4
  122. minuteField                        EQU        5
  123. secondField                        EQU        6
  124. dayOfWeekField                    EQU        7
  125. dayOfYearField                    EQU        8
  126. weekOfYearField                    EQU        9
  127. pmField                            EQU        10
  128. res1Field                        EQU        11
  129. res2Field                        EQU        12
  130. res3Field                        EQU        13
  131.  
  132. ; typedef SignedByte         LongDateField
  133.  
  134. dummyType                        EQU        0
  135. vType                            EQU        1
  136. ioQType                            EQU        2
  137. drvQType                        EQU        3
  138. evType                            EQU        4
  139. fsQType                            EQU        5
  140. sIQType                            EQU        6
  141. dtQType                            EQU        7
  142. nmType                            EQU        8
  143.  
  144. ; typedef SignedByte         QTypes
  145.  
  146. OSTrap                            EQU        0
  147. ToolTrap                        EQU        1
  148.  
  149. ; typedef SignedByte         TrapType
  150. SysParmType             RECORD    0
  151. valid                     ds.b   1        ; offset: $0 (0)
  152. aTalkA                     ds.b   1        ; offset: $1 (1)
  153. aTalkB                     ds.b   1        ; offset: $2 (2)
  154. config                     ds.b   1        ; offset: $3 (3)
  155. portA                     ds.w   1        ; offset: $4 (4)
  156. portB                     ds.w   1        ; offset: $6 (6)
  157. alarm                     ds.l   1        ; offset: $8 (8)
  158. font                     ds.w   1        ; offset: $C (12)
  159. kbdPrint                 ds.w   1        ; offset: $E (14)
  160. volClik                     ds.w   1        ; offset: $10 (16)
  161. misc                     ds.w   1        ; offset: $12 (18)
  162. sizeof                     EQU *            ; size:   $14 (20)
  163.                         ENDR
  164.  
  165. ; typedef struct SysParmType  SysParmType, *SysPPtr
  166. ; typedef struct QElem         QElem
  167. ; typedef QElem             *QElemPtr
  168. QElem                     RECORD    0
  169. qLink                     ds.l   1        ; offset: $0 (0)
  170. qType                     ds.w   1        ; offset: $4 (4)
  171. qData                     ds.w   1        ; offset: $6 (6)
  172. sizeof                     EQU *            ; size:   $8 (8)
  173.                         ENDR
  174.  
  175. ; typedef struct QHdr         QHdr
  176. ; typedef QHdr                 *QHdrPtr
  177. QHdr                     RECORD    0
  178. qFlags                     ds.w   1        ; offset: $0 (0)
  179. qHead                     ds.l   1        ; offset: $2 (2)
  180. qTail                     ds.l   1        ; offset: $6 (6)
  181. sizeof                     EQU *            ; size:   $A (10)
  182.                         ENDR
  183.  
  184. DeferredTask             RECORD    0
  185. qLink                     ds.l   1        ; offset: $0 (0)
  186. qType                     ds.w   1        ; offset: $4 (4)
  187. dtFlags                     ds.w   1        ; offset: $6 (6)
  188. dtAddr                     ds.l   1        ; offset: $8 (8)
  189. dtParam                     ds.l   1        ; offset: $C (12)
  190. dtReserved                 ds.l   1        ; offset: $10 (16)
  191. sizeof                     EQU *            ; size:   $14 (20)
  192.                         ENDR
  193.  
  194. ; typedef struct DeferredTask  DeferredTask, *DeferredTaskPtr
  195. SysEnvRec                 RECORD    0
  196. environsVersion             ds.w   1        ; offset: $0 (0)
  197. machineType                 ds.w   1        ; offset: $2 (2)
  198. systemVersion             ds.w   1        ; offset: $4 (4)
  199. processor                 ds.w   1        ; offset: $6 (6)
  200. hasFPU                     ds.b   1        ; offset: $8 (8)
  201. hasColorQD                 ds.b   1        ; offset: $9 (9)
  202. keyBoardType             ds.w   1        ; offset: $A (10)
  203. atDrvrVersNum             ds.w   1        ; offset: $C (12)
  204. sysVRefNum                 ds.w   1        ; offset: $E (14)
  205. sizeof                     EQU *            ; size:   $10 (16)
  206.                         ENDR
  207.  
  208. ; typedef struct SysEnvRec     SysEnvRec
  209. MachineLocation         RECORD    0
  210. latitude                 ds.l   1        ; offset: $0 (0)
  211. longitude                 ds.l   1        ; offset: $4 (4)
  212. dlsDelta                 ds.b   1        ; offset: $8 (8)        ;signed byte; daylight savings delta
  213.                          ORG 8
  214. gmtDelta                 ds.l   1        ; offset: $8 (8)        ;must mask - see documentation
  215.                          ORG 12
  216. sizeof                     EQU *            ; size:   $C (12)
  217.                         ENDR
  218.  
  219. ; typedef struct MachineLocation  MachineLocation
  220. DateTimeRec             RECORD    0
  221. year                     ds.w   1        ; offset: $0 (0)
  222. month                     ds.w   1        ; offset: $2 (2)
  223. day                         ds.w   1        ; offset: $4 (4)
  224. hour                     ds.w   1        ; offset: $6 (6)
  225. minute                     ds.w   1        ; offset: $8 (8)
  226. second                     ds.w   1        ; offset: $A (10)
  227. dayOfWeek                 ds.w   1        ; offset: $C (12)
  228. sizeof                     EQU *            ; size:   $E (14)
  229.                         ENDR
  230.  
  231. ; typedef struct DateTimeRec  DateTimeRec
  232. ; typedef wide                 LongDateTime
  233. LongDateCvt             RECORD    0
  234. c                         ds     wide    ; offset: $0 (0)
  235.                          ORG 0
  236. lHigh                     ds.l   1        ; offset: $0 (0)
  237. lLow                     ds.l   1        ; offset: $4 (4)
  238.                          ORG 8
  239. sizeof                     EQU *            ; size:   $8 (8)
  240.                         ENDR
  241.  
  242. ; typedef union LongDateCvt  LongDateCvt
  243. LongDateRec             RECORD    0
  244. era                         ds.w   1        ; offset: $0 (0)
  245. year                     ds.w   1        ; offset: $2 (2)
  246. month                     ds.w   1        ; offset: $4 (4)
  247. day                         ds.w   1        ; offset: $6 (6)
  248. hour                     ds.w   1        ; offset: $8 (8)
  249. minute                     ds.w   1        ; offset: $A (10)
  250. second                     ds.w   1        ; offset: $C (12)
  251. dayOfWeek                 ds.w   1        ; offset: $E (14)
  252. dayOfYear                 ds.w   1        ; offset: $10 (16)
  253. weekOfYear                 ds.w   1        ; offset: $12 (18)
  254. pm                         ds.w   1        ; offset: $14 (20)
  255. res1                     ds.w   1        ; offset: $16 (22)
  256. res2                     ds.w   1        ; offset: $18 (24)
  257. res3                     ds.w   1        ; offset: $1A (26)
  258.                          ORG 0
  259. list                     ds.w   14        ; offset: $0 (0)        ;Index by LongDateField!
  260.                          ORG 0
  261. eraAlt                     ds.w   1        ; offset: $0 (0)
  262. oldDate                     ds     DateTimeRec ; offset: $2 (2)
  263.                          ORG 28
  264. sizeof                     EQU *            ; size:   $1C (28)
  265.                         ENDR
  266.  
  267. ; typedef union LongDateRec  LongDateRec
  268. ; typedef SInt8             DateDelta
  269. TogglePB                 RECORD    0
  270. togFlags                 ds.l   1        ; offset: $0 (0)        ;caller normally sets low word to dateStdMask=$7F
  271. amChars                     ds.l   1        ; offset: $4 (4)        ;from 'itl0', but uppercased
  272. pmChars                     ds.l   1        ; offset: $8 (8)        ;from 'itl0', but uppercased
  273. reserved                 ds.l   4        ; offset: $C (12)
  274. sizeof                     EQU *            ; size:   $1C (28)
  275.                         ENDR
  276.  
  277. ; typedef struct TogglePB     TogglePB
  278. ; typedef short             ToggleResults
  279. ;
  280. ; pascal void LongDateToSeconds(const LongDateRec *lDate, LongDateTime *lSecs)
  281. ;
  282.     IF ¬ GENERATINGCFM THEN
  283.         Macro
  284.         _LongDateToSeconds
  285.             dc.w     $2F3C
  286.             dc.w     $8008
  287.             dc.w     $FFF2
  288.             dc.w     $A8B5
  289.         EndM
  290.     ELSE
  291.         IMPORT_CFM_FUNCTION    LongDateToSeconds
  292.     ENDIF
  293.  
  294. ;
  295. ; pascal void LongSecondsToDate(LongDateTime *lSecs, LongDateRec *lDate)
  296. ;
  297.     IF ¬ GENERATINGCFM THEN
  298.         Macro
  299.         _LongSecondsToDate
  300.             dc.w     $2F3C
  301.             dc.w     $8008
  302.             dc.w     $FFF0
  303.             dc.w     $A8B5
  304.         EndM
  305.     ELSE
  306.         IMPORT_CFM_FUNCTION    LongSecondsToDate
  307.     ENDIF
  308.  
  309. ;
  310. ; pascal ToggleResults ToggleDate(LongDateTime *lSecs, LongDateField field, DateDelta delta, short ch, const TogglePB *params)
  311. ;
  312.     IF ¬ GENERATINGCFM THEN
  313.         Macro
  314.         _ToggleDate
  315.             dc.w     $2F3C
  316.             dc.w     $820E
  317.             dc.w     $FFEE
  318.             dc.w     $A8B5
  319.         EndM
  320.     ELSE
  321.         IMPORT_CFM_FUNCTION    ToggleDate
  322.     ENDIF
  323.  
  324. ;
  325. ; pascal short ValidDate(const LongDateRec *vDate, long flags, LongDateTime *newSecs)
  326. ;
  327.     IF ¬ GENERATINGCFM THEN
  328.         Macro
  329.         _ValidDate
  330.             dc.w     $2F3C
  331.             dc.w     $820C
  332.             dc.w     $FFE4
  333.             dc.w     $A8B5
  334.         EndM
  335.     ELSE
  336.         IMPORT_CFM_FUNCTION    ValidDate
  337.     ENDIF
  338.  
  339. ;
  340. ; pascal Boolean IsMetric(void)
  341. ;
  342.     IF ¬ GENERATINGCFM THEN
  343.         Macro
  344.         _IsMetric
  345.             move.w    #$0004,-(sp)
  346.             dc.w     $A9ED
  347.         EndM
  348.     ELSE
  349.         IMPORT_CFM_FUNCTION    IsMetric
  350.     ENDIF
  351.  
  352. ;
  353. ; pascal SysPPtr GetSysPPtr(void)
  354. ;
  355.     IF ¬ GENERATINGCFM THEN
  356.         Macro
  357.         _GetSysPPtr
  358.             dc.w     $2EBC
  359.             dc.w     $0000
  360.             dc.w     $01F8
  361.         EndM
  362.     ELSE
  363.         IMPORT_CFM_FUNCTION    GetSysPPtr
  364.     ENDIF
  365.  
  366. ;
  367. ; pascal OSErr ReadDateTime(unsigned long *time)
  368. ;
  369.     IF ¬ GENERATINGCFM THEN
  370.         ; parameters: 
  371.         ;     time              => A0
  372.         ; returns: 
  373.         ;     OSErr             <= D0
  374.         _ReadDateTime:    OPWORD    $A039
  375.     ELSE
  376.         IMPORT_CFM_FUNCTION    ReadDateTime
  377.     ENDIF
  378.  
  379. ;
  380. ; pascal void GetDateTime(unsigned long *secs)
  381. ;
  382.     IF ¬ GENERATINGCFM THEN
  383.         ; parameters: 
  384.         ;     secs              => A0
  385.         Macro
  386.         _GetDateTime
  387.             dc.w     $20B8
  388.             dc.w     $020C
  389.         EndM
  390.     ELSE
  391.         IMPORT_CFM_FUNCTION    GetDateTime
  392.     ENDIF
  393.  
  394. ;
  395. ; pascal OSErr SetDateTime(unsigned long time)
  396. ;
  397.     IF ¬ GENERATINGCFM THEN
  398.         ; parameters: 
  399.         ;     time              => D0
  400.         ; returns: 
  401.         ;     OSErr             <= D0
  402.         _SetDateTime:    OPWORD    $A03A
  403.     ELSE
  404.         IMPORT_CFM_FUNCTION    SetDateTime
  405.     ENDIF
  406.  
  407. ;
  408. ; pascal void SetTime(const DateTimeRec *d)
  409. ;
  410.     IF ¬ GENERATINGCFM THEN
  411.         ; parameters: 
  412.         ;     d                 => A0
  413.         Macro
  414.         _SetTime
  415.             dc.w     $A9C7
  416.             dc.w     $A03A
  417.         EndM
  418.     ELSE
  419.         IMPORT_CFM_FUNCTION    SetTime
  420.     ENDIF
  421.  
  422. ;
  423. ; pascal void GetTime(DateTimeRec *d)
  424. ;
  425.     IF ¬ GENERATINGCFM THEN
  426.         ; parameters: 
  427.         ;     d                 => A0
  428.         Macro
  429.         _GetTime
  430.             dc.w     $2038
  431.             dc.w     $020C
  432.             dc.w     $A9C6
  433.         EndM
  434.     ELSE
  435.         IMPORT_CFM_FUNCTION    GetTime
  436.     ENDIF
  437.  
  438. ;
  439. ; pascal void DateToSeconds(const DateTimeRec *d, unsigned long *secs)
  440. ;
  441.     IF GENERATINGCFM THEN
  442.         IMPORT_CFM_FUNCTION    DateToSeconds
  443.     ENDIF
  444.  
  445. ;
  446. ; pascal void SecondsToDate(unsigned long secs, DateTimeRec *d)
  447. ;
  448.     IF ¬ GENERATINGCFM THEN
  449.         ; parameters: 
  450.         ;     secs              => D0
  451.         ;     d                 => A0
  452.         _SecondsToDate:    OPWORD    $A9C6
  453.     ELSE
  454.         IMPORT_CFM_FUNCTION    SecondsToDate
  455.     ENDIF
  456.  
  457. ;
  458. ; pascal void SysBeep(short duration)
  459. ;
  460.     IF ¬ GENERATINGCFM THEN
  461.         _SysBeep:    OPWORD    $A9C8
  462.     ELSE
  463.         IMPORT_CFM_FUNCTION    SysBeep
  464.     ENDIF
  465.  
  466. ;
  467. ; pascal OSErr DTInstall(DeferredTaskPtr dtTaskPtr)
  468. ;
  469.     IF ¬ GENERATINGCFM THEN
  470.         ; parameters: 
  471.         ;     dtTaskPtr         => A0
  472.         ; returns: 
  473.         ;     OSErr             <= D0
  474.         _DTInstall:    OPWORD    $A082
  475.     ELSE
  476.         IMPORT_CFM_FUNCTION    DTInstall
  477.     ENDIF
  478.  
  479. ;
  480. ; pascal SInt8 GetMMUMode(void)
  481. ;
  482.     IF ¬ GENERATINGCFM THEN
  483.         Macro
  484.         GetMMUMode           &dest=(sp)
  485.         move.b               $0CB2,&dest
  486.         EndM
  487.     ELSE
  488.         IMPORT_CFM_FUNCTION    GetMMUMode
  489.     ENDIF
  490.  
  491. ;
  492. ; pascal void SwapMMUMode(SInt8 *mode)
  493. ;
  494.     IF ¬ GENERATINGCFM THEN
  495.         ; parameters: 
  496.         ;     mode              => A0
  497.         Macro
  498.         _SwapMMUMode
  499.             dc.w     $1010
  500.             dc.w     $A05D
  501.             dc.w     $1080
  502.         EndM
  503.     ELSE
  504.         IMPORT_CFM_FUNCTION    SwapMMUMode
  505.     ENDIF
  506.  
  507.     IF SystemSixOrLater  THEN
  508. ;
  509. ; pascal OSErr SysEnvirons(short versionRequested, SysEnvRec *theWorld)
  510. ;
  511.     IF ¬ GENERATINGCFM THEN
  512.         ; parameters: 
  513.         ;     versionRequested    => D0
  514.         ;     theWorld          => A0
  515.         ; returns: 
  516.         ;     OSErr             <= D0
  517.         _SysEnvirons:    OPWORD    $A090
  518.     ELSE
  519.         IMPORT_CFM_FUNCTION    SysEnvirons
  520.     ENDIF
  521.  
  522.     ELSE
  523. ;
  524. ; pascal OSErr SysEnvirons(short versionRequested, SysEnvRec *theWorld)
  525. ;
  526.     IF GENERATINGCFM THEN
  527.         IMPORT_CFM_FUNCTION    SysEnvirons
  528.     ENDIF
  529.  
  530.     ENDIF
  531. ;
  532. ; pascal void Delay(long numTicks, long *finalTicks)
  533. ;
  534.     IF ¬ GENERATINGCFM THEN
  535.         ; parameters: 
  536.         ;     numTicks          => A0
  537.         ;     finalTicks        => A1
  538.         Macro
  539.         _Delay
  540.             dc.w     $A03B
  541.             dc.w     $2280
  542.         EndM
  543.     ELSE
  544.         IMPORT_CFM_FUNCTION    Delay
  545.     ENDIF
  546.  
  547. ;
  548. ;    GetTrapAddress and SetTrapAddress are obsolete and should not
  549. ;    be used. Always use NGetTrapAddress and NSetTrapAddress instead.
  550. ;    The old routines will not be supported for PowerPC apps.
  551. ;
  552.     IF OLDROUTINENAMES  ** ¬ GENERATINGCFM  THEN
  553. ;
  554. ; pascal UniversalProcPtr GetTrapAddress(short trapNum)
  555. ;
  556.     IF ¬ GENERATINGCFM THEN
  557.         ; parameters: 
  558.         ;     trapNum           => D0
  559.         ; returns: 
  560.         ;     UniversalProcPtr    <= A0
  561.         _GetTrapAddress:    OPWORD    $A146
  562.     ELSE
  563.         IMPORT_CFM_FUNCTION    GetTrapAddress
  564.     ENDIF
  565.  
  566. ;
  567. ; pascal void SetTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  568. ;
  569.     IF ¬ GENERATINGCFM THEN
  570.         ; parameters: 
  571.         ;     trapAddr          => A0
  572.         ;     trapNum           => D0
  573.         _SetTrapAddress:    OPWORD    $A047
  574.     ELSE
  575.         IMPORT_CFM_FUNCTION    SetTrapAddress
  576.     ENDIF
  577.  
  578.     ENDIF
  579. ;
  580. ; pascal UniversalProcPtr NGetTrapAddress(short trapNum, TrapType tTyp)
  581. ;
  582.     IF GENERATINGCFM THEN
  583.         IMPORT_CFM_FUNCTION    NGetTrapAddress
  584.     ENDIF
  585.  
  586. ;
  587. ; pascal void NSetTrapAddress(UniversalProcPtr trapAddr, short trapNum, TrapType tTyp)
  588. ;
  589.     IF GENERATINGCFM THEN
  590.         IMPORT_CFM_FUNCTION    NSetTrapAddress
  591.     ENDIF
  592.  
  593. ;
  594. ; pascal UniversalProcPtr GetOSTrapAddress(short trapNum)
  595. ;
  596.     IF ¬ GENERATINGCFM THEN
  597.         ; parameters: 
  598.         ;     trapNum           => D0
  599.         ; returns: 
  600.         ;     UniversalProcPtr    <= A0
  601.         _GetOSTrapAddress:    OPWORD    $A346
  602.     ELSE
  603.         IMPORT_CFM_FUNCTION    GetOSTrapAddress
  604.     ENDIF
  605.  
  606. ;
  607. ; pascal void SetOSTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  608. ;
  609.     IF ¬ GENERATINGCFM THEN
  610.         ; parameters: 
  611.         ;     trapAddr          => A0
  612.         ;     trapNum           => D0
  613.         _SetOSTrapAddress:    OPWORD    $A247
  614.     ELSE
  615.         IMPORT_CFM_FUNCTION    SetOSTrapAddress
  616.     ENDIF
  617.  
  618. ;
  619. ; pascal UniversalProcPtr GetToolTrapAddress(short trapNum)
  620. ;
  621.     IF ¬ GENERATINGCFM THEN
  622.         ; parameters: 
  623.         ;     trapNum           => D0
  624.         ; returns: 
  625.         ;     UniversalProcPtr    <= A0
  626.         _GetToolTrapAddress:    OPWORD    $A746
  627.     ELSE
  628.         IMPORT_CFM_FUNCTION    GetToolTrapAddress
  629.     ENDIF
  630.  
  631. ;
  632. ; pascal void SetToolTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  633. ;
  634.     IF ¬ GENERATINGCFM THEN
  635.         ; parameters: 
  636.         ;     trapAddr          => A0
  637.         ;     trapNum           => D0
  638.         _SetToolTrapAddress:    OPWORD    $A647
  639.     ELSE
  640.         IMPORT_CFM_FUNCTION    SetToolTrapAddress
  641.     ENDIF
  642.  
  643. ;
  644. ; pascal UniversalProcPtr GetToolboxTrapAddress(short trapNum)
  645. ;
  646.     IF ¬ GENERATINGCFM THEN
  647.         ; parameters: 
  648.         ;     trapNum           => D0
  649.         ; returns: 
  650.         ;     UniversalProcPtr    <= A0
  651.         _GetToolboxTrapAddress:    OPWORD    $A746
  652.     ELSE
  653.         IMPORT_CFM_FUNCTION    GetToolboxTrapAddress
  654.     ENDIF
  655.  
  656. ;
  657. ; pascal void SetToolboxTrapAddress(UniversalProcPtr trapAddr, short trapNum)
  658. ;
  659.     IF ¬ GENERATINGCFM THEN
  660.         ; parameters: 
  661.         ;     trapAddr          => A0
  662.         ;     trapNum           => D0
  663.         _SetToolboxTrapAddress:    OPWORD    $A647
  664.     ELSE
  665.         IMPORT_CFM_FUNCTION    SetToolboxTrapAddress
  666.     ENDIF
  667.  
  668. ;
  669. ; pascal OSErr WriteParam(void)
  670. ;
  671.     IF GENERATINGCFM THEN
  672.         IMPORT_CFM_FUNCTION    WriteParam
  673.     ENDIF
  674.  
  675. ;
  676. ; pascal void Enqueue(QElemPtr qElement, QHdrPtr qHeader)
  677. ;
  678.     IF ¬ GENERATINGCFM THEN
  679.         ; parameters: 
  680.         ;     qElement          => A0
  681.         ;     qHeader           => A1
  682.         _Enqueue:    OPWORD    $A96F
  683.     ELSE
  684.         IMPORT_CFM_FUNCTION    Enqueue
  685.     ENDIF
  686.  
  687. ;
  688. ; pascal OSErr Dequeue(QElemPtr qElement, QHdrPtr qHeader)
  689. ;
  690.     IF ¬ GENERATINGCFM THEN
  691.         ; parameters: 
  692.         ;     qElement          => A0
  693.         ;     qHeader           => A1
  694.         ; returns: 
  695.         ;     OSErr             <= D0
  696.         _Dequeue:    OPWORD    $A96E
  697.     ELSE
  698.         IMPORT_CFM_FUNCTION    Dequeue
  699.     ENDIF
  700.  
  701.     IF ¬ SystemSevenOrLater  THEN
  702. ;
  703. ; pascal void Environs(short *rom, short *machine)
  704. ;
  705.     IF GENERATINGCFM THEN
  706.         IMPORT_CFM_FUNCTION    Environs
  707.     ENDIF
  708.  
  709.     ENDIF
  710. ;
  711. ; pascal OSErr InitUtil(void)
  712. ;
  713.     IF ¬ GENERATINGCFM THEN
  714.         ; returns: 
  715.         ;     OSErr             <= D0
  716.         _InitUtil:    OPWORD    $A03F
  717.     ELSE
  718.         IMPORT_CFM_FUNCTION    InitUtil
  719.     ENDIF
  720.  
  721.     IF GENERATING68K  THEN
  722. ;
  723. ; pascal Boolean SwapInstructionCache(Boolean cacheEnable)
  724. ;
  725.     IF GENERATINGCFM THEN
  726.         IMPORT_CFM_FUNCTION    SwapInstructionCache
  727.     ENDIF
  728.  
  729. ;
  730. ; pascal void FlushInstructionCache(void)
  731. ;
  732.     IF ¬ GENERATINGCFM THEN
  733.         Macro
  734.         _FlushInstructionCache
  735.             moveq    #1,d0
  736.             dc.w     $A098
  737.         EndM
  738.     ELSE
  739.         IMPORT_CFM_FUNCTION    FlushInstructionCache
  740.     ENDIF
  741.  
  742. ;
  743. ; pascal Boolean SwapDataCache(Boolean cacheEnable)
  744. ;
  745.     IF GENERATINGCFM THEN
  746.         IMPORT_CFM_FUNCTION    SwapDataCache
  747.     ENDIF
  748.  
  749. ;
  750. ; pascal void FlushDataCache(void)
  751. ;
  752.     IF ¬ GENERATINGCFM THEN
  753.         Macro
  754.         _FlushDataCache
  755.             moveq    #3,d0
  756.             dc.w     $A098
  757.         EndM
  758.     ELSE
  759.         IMPORT_CFM_FUNCTION    FlushDataCache
  760.     ENDIF
  761.  
  762. ;
  763. ; pascal void FlushCodeCache(void)
  764. ;
  765.     IF ¬ GENERATINGCFM THEN
  766.         _FlushCodeCache:    OPWORD    $A0BD
  767.     ELSE
  768.         IMPORT_CFM_FUNCTION    FlushCodeCache
  769.     ENDIF
  770.  
  771. ;
  772. ; pascal void FlushCodeCacheRange(void *address, unsigned long count)
  773. ;
  774.     IF ¬ GENERATINGCFM THEN
  775.         ; parameters: 
  776.         ;     address           => A0
  777.         ;     count             => A1
  778.         Macro
  779.         _FlushCodeCacheRange
  780.             moveq    #9,d0
  781.             dc.w     $A098
  782.         EndM
  783.     ELSE
  784.         IMPORT_CFM_FUNCTION    FlushCodeCacheRange
  785.     ENDIF
  786.  
  787.     ENDIF
  788. ;
  789. ; pascal void ReadLocation(MachineLocation *loc)
  790. ;
  791.     IF ¬ GENERATINGCFM THEN
  792.         ; parameters: 
  793.         ;     loc               => A0
  794.         Macro
  795.         _ReadLocation
  796.             dc.w     $203C
  797.             dc.w     $000C
  798.             dc.w     $00E4
  799.             dc.w     $A051
  800.         EndM
  801.     ELSE
  802.         IMPORT_CFM_FUNCTION    ReadLocation
  803.     ENDIF
  804.  
  805. ;
  806. ; pascal void WriteLocation(const MachineLocation *loc)
  807. ;
  808.     IF ¬ GENERATINGCFM THEN
  809.         ; parameters: 
  810.         ;     loc               => A0
  811.         Macro
  812.         _WriteLocation
  813.             dc.w     $203C
  814.             dc.w     $000C
  815.             dc.w     $00E4
  816.             dc.w     $A052
  817.         EndM
  818.     ELSE
  819.         IMPORT_CFM_FUNCTION    WriteLocation
  820.     ENDIF
  821.  
  822.     IF OLDROUTINENAMES  THEN
  823.     ENDIF
  824.     ENDIF ; __OSUTILS__
  825.